package edu.cuit.avatar.callback;

/**
 * 只是为了把一个类隐藏在另外一个类的内部，并不需要内部类引用外围对象，可以把内部类声明为static的，以便取消产生的引用
 * @author <a href="mailto:1020zhaodan@163.com">Adan</a>
 * @version 1.0
 * @date 2025/7/10 16:11
 */
public class ArrayAlg {

    /**
     * 该方法从整型数组中分别返回最小值和最大值
     * @param list 整型数组
     * @return {@link Pair}
     */
    public static Pair getMinAndMax(int[] list){
        if (list == null || list.length == 0)
            return null;
        int min = list[0], max = list[0];
        for(var e : list){
            if(e > max)
                max = e;
            if(e < min)
                min = e;
        }
        return new Pair(min, max);
    }

    /**
     * 最大值和最小值
     */
    public static class Pair{
        private int min;
        private int max;

        public Pair(int min, int max) {
            this.min = min;
            this.max = max;
        }

        public int getMin() {
            return min;
        }

        public int getMax() {
            return max;
        }
    }
}
